package com.chujian.framework.ws.support.rcv;

import com.chujian.framework.ws.WsMsg;

import java.util.List;

/**
 * 数据库存储服务
 */
public interface IWsDbStoreService {

    /**
     * 保存发送的数据
     *
     * @param msg
     */
    void saveWsMsg(WsMsg msg);

    /**
     * 标记发送成功
     *
     * @param msg
     */
    void markSendSuccess(WsMsg msg);

    /**
     * 标记发送失败
     *
     * @param msg
     * @param errMsg
     */
    void markSendFail(WsMsg msg, String errMsg);

    /**
     * 获取需要重试发送的数据
     *
     * @param pageSize
     * @return
     */
    List<WsMsg> listRetrySendMsg(int pageSize);


    /**
     * 获取需要重试消费的数据
     *
     * @param pageSize
     * @return
     */
    List<WsMsg> listRetryRcvMsg(int pageSize);


    /**
     * 标记消费成功
     *
     * @param msg
     */
    void markRcvSuc(WsMsg msg);

    /**
     * 标记消费失败
     *
     * @param msg
     * @param errorMsg
     */
    void markRcvFailure(WsMsg msg, String errorMsg);
}
